/*
 *  This file is part of Bracket Security
 *  Copyright 2011 David R. Smith
 *
 */
package asia.redact.bracket.security.config;

import java.io.File;

/**
 * Interface for configuration
 * 
 * @author Dave
 *
 */
public interface SecurityConfig {
	String getKeypass();
	String getStorepass();
	String getKeystoreType();
	String getKeystoreFileExtension();
	String getSignatureAlgorithm();
	String getJCEProvider();
	String getSymmetricAlgorithm();
	int getSymmetricKeySize();
	int getAsymmetricKeySize();
	String getAsymmetricAlgorithm();
	boolean useCaching();
	/**
	 * The directory in which we should look for the password and keystore files 
	 * @return
	 */
	File getKeyMaterialsBase();
	
	/**
	 * String like this: "C=AU,O=Bracket Projects,L=MacMasters Beach,ST=New South Wales"
	 * 
	 * keys are upper case
	 * 
	 * @return
	 */
	String getSubjectDN();
	
	/**
	 * This should be a long in String form
	 * @return
	 */
	String getSerialNumber();
	
	/**
	 * The alias which will be used in generating the zero-config key store's private key
	 * 
	 * @return
	 */
	String getAlias();
	
}
